﻿#include <ctime>
#include <iostream>
#include <fstream>

using namespace std;

void bubbleSort(int list[], int listLength) {
    while (listLength--) {
        bool swapped = false;

        for (int i = 0; i < listLength; i++) {
            if (list[i] > list[i + 1]) {
                swap(list[i], list[i + 1]);
                swapped = true;
            }
        }

        if (swapped == false) break;
    }
}

void read_from_file(const char* filename, int a[], int length) {
    ifstream file(filename);

    for (int i = 0; i < length; i++)
        file >> a[i];
}

int main()
{
#define LEN 5000
    int a[LEN];
    int t_start;
    int t_finish;
    int t_work;

    read_from_file("m1_sorted.txt", a, LEN);
    t_start = clock();
    bubbleSort(a, LEN);
    t_finish = clock(); 
    t_work = t_finish - t_start;
    cout << "m1_sorted " << t_work << " milliseconds \n";

    read_from_file("m2_reverse.txt", a, LEN);
    t_start = clock(); 
    bubbleSort(a, LEN);
    t_finish = clock(); 
    t_work = t_finish - t_start; 
    cout << "m2_reverse " << t_work << " milliseconds \n";

    read_from_file("m3_shuffle.txt", a, LEN);
    t_start = clock(); 
    bubbleSort(a, LEN);
    t_finish = clock(); 
    t_work = t_finish - t_start; 
    cout << "m3_shuffle " << t_work << " milliseconds \n";

    return 0;
}